package site.sorghum.ddl.base;

import site.sorghum.ddl.DDLDialect;
import site.sorghum.ddl.entity.DdlTableWrap;

import java.util.List;

/**
 * BaseDdlWrapper
 *
 * @author Sorghum
 */
public interface BaseDdlWrapper {

    /**
     * 根据数据库连接信息获取DdlDialect
     *
     * @return DdlDialect
     */
    DDLDialect dialect();

    /**
     * 执行sql
     *
     * @param sql sql
     * @param ags 参数
     */
    void exec(String sql, Object... ags);

    /**
     * 根据数据库连接信息获取表结构信息
     *
     * @param tableName 表名
     * @return 表结构信息
     */
    DdlTableWrap fromDataSource(String tableName);

    /**
     * 获取所有表名
     *
     * @return 所有表名
     */
    List<String> fetchAllTables();

    /**
     * 获取数据库名
     * @return 数据库名
     */
    String schema();

}
